package com.hmdp.common.interceptor;

import com.hmdp.common.utils.UserHolder;
import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * @author WDs , wds8.24@outlook.com
 * @version 1.0
 * @since 2023-01-07 15:18
 */
public class UserLoginInterceptor implements HandlerInterceptor {

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
//        Object sessionUser = request.getSession().getAttribute("user");
//        String token = request.getHeader("authorization");
//       没有token
//        if (StrUtil.isBlank(token)) {
//            response.setStatus(401);
//            return false;
//        }

//        Map<Object, Object> map = redisTemplate.opsForHash().entries(RedisConstants.LOGIN_TOKEN_KEY + token);
//        if (map.isEmpty()) {
//         redis中的key已经过期
//         token是伪造的
//            response.setStatus(401);
//            return false;
//        }
//        刷新token单次请求的有效期  30分钟
//        redisTemplate.expire(RedisConstants.LOGIN_TOKEN_KEY + token, RedisConstants.LOGIN_TOKEN_TTL, TimeUnit.HOURS);

//        UserDto userDto = BeanUtil.fillBeanWithMap(map, new UserDto(), false);
//        UserHolder.saveUser(userDto);
//        return true;

        if (UserHolder.getUser() == null) {
            response.setStatus(401);
            return false;// no login
        }
        return true;//continue
    }



}
